// @version go-erp 0.1
// @author xiaotangren  <unphp@qq.com>
// @data 2014-11-13
// 用户数据表结构
package model

import "time"

//店铺
type UmShop struct {
	ShopId       int64   `xorm:"pk" json:"shop_id"`                                        //商家ID
	ShopTypeId   int64   `xorm:"index not null" json:"shop_type_id"`                       //店铺类型（淘宝天猫、淘宝、京东、自营店等）
	RealityMoney float64 `xorm:"not null default 0.00 DECIMAL(10,2)" json:"reality_money"` //可提款的金额，用户充值的金额
	VirtualMoney float64 `xorm:"not null default 0.00 DECIMAL(10,2)" json:"virtua_money"`  //奖励金额，返款，不可提款
	FreezeMoney  float64 `xorm:"not null default 0.00 DECIMAL(10,2)" json:"freeze_money"`  //冻结金额，不可使用
	NickName     string  `xorm:"not null varchar(50)" json:"nick_name"`                    //店铺昵称
	ShopUrl      string  `xorm:"not null varchar(300)" json:"shop_url"`                    //店铺网址
	UserId       int64   `xorm:"index unique not null" json:"user_id"`                     //店铺店主账户Id（在本系统注册的user_id）
}

// 登录
type UmLogin struct {
	UserId      int64     `xorm:"pk" json:"user_id"`                              //用户ID
	LoginToken  string    `xorm:"unique" json:"login_token"`                      //用户登录名称
	LoginSecret string    `xorm:"VARCHAR(50) default ''" json:"login_secret"`     //密码
	LoginSalt   string    `xorm:"VARCHAR(50) default ''" json:"login_salt"`       //密码盐值
	UserType    int64     `xorm:"not null default 0 TINYINT(3)" json:"user_type"` //用户类型，0商户店主，1为子账户
	ParentId    int64     `xorm:"index not null default '0'" json:"parent_id"`    //上级ID（当子账户时，上级ID为店主ID）
	IsValid     int64     `xorm:"int(11) default '0'" json:"is_valid"`            //是否验证，0未验证，1已验证，2无效不能登录
	ThirdId     string    `xorm:"varchar(50) default ''" json:"third_id"`         //第三方平台的id
	LoginAccess string    `xorm:"varchar(250) default ''" json:"login_access"`    //第三方平台的access_token
	UserStatus  int64     `xorm:"int(11) default '0'" json:"user_status"`         //用户状态，0为正常，>0为锁定
	AddTime     time.Time `xorm:"created index" json:"addtime"`                   //添加时间
	UpTime      time.Time `xorm:"updated index" json:"uptime"`                    //更新时间
	SysId       uint32    `xorm:"index not null default '10001'" json:"sys_id"`   //系统编码
}

// 账户基本资料
type UmUsers struct {
	UserId         int64     `xorm:"not null index unique 'user_id'" json:"user_id"`         //用户ID
	UserName       string    `xorm:"not null default '' VARCHAR(20)" json:"user_name"`       //用户名，英文数字，不可更改
	NickName       string    `xorm:"not null default '' VARCHAR(20)" json:"nick_name"`       //用户别名
	Avatar         string    `xorm:"not null default '' VARCHAR(300)" json:"avatar"`         //用户头像
	Point          int64     `xorm:"not null default 0 INT(11)" json:"point"`                //积分
	RegIp          int64     `xorm:"not null default 0 BIGINT" json:"reg_ip"`                //注册ip
	RegLocation    string    `xorm:"not null default '' VARCHAR(40)" json:"reg_location"`    //注册地
	RegCountryCode string    `xorm:"not null default '' VARCHAR(4)" json:"reg_country_code"` //注册国家
	RegTime        int64     `xorm:"not null default 0 INT(11)" json:"reg_time"`             //注册时间
	LastLoginTime  int64     `xorm:"not null default 0 INT(11)" json:"last_login_time"`      //最后登录时间
	LastLoginIp    int64     `xorm:"not null default 0 BIGINT" json:"last_login_ip"`         //最后登录IP
	RegTag         string    `xorm:"not null default '' VARCHAR(25)" json:"reg_tag"`         //
	RegFrom        string    `xorm:"not null default '' VARCHAR(25)" json:"reg_from"`        //
	AddTime        time.Time `xorm:"created index" json:"addtime"`                           //添加时间
	UpTime         time.Time `xorm:"updated index" json:"uptime"`                            //更新时间
	SysId          uint32    `xorm:"index not null default '10001'" json:"sys_id"`           //系统编码
}

//账户权限池（API列表）
type UmUserApiRight struct {
	UserId   int64 `xorm:"not null index 'user_id'" json:"user_id"`       //用户ID
	SysApiId int64 `xorm:"not null index 'sys_api_id'" json:"sys_api_id"` //接口ID
}
